#pragma once
#include<stdlib.h>
#include<stdbool.h>
#include<assert.h>
#include<stdio.h>
typedef int typedata;
typedef struct queuenode
{
	typedata data;
	struct queuenode* next;
}Qnode;

typedef struct Queue
{
	Qnode* phead;
	Qnode* tail;
	int size;
}Queue;

void queueinit(Queue* pq);
void queuedestroy(Queue* pq);
void queuepush(Queue* pq, typedata x);
void queuepop(Queue* pq);
bool queueempty(Queue* pq);
typedata queuefront(Queue* pq);
typedata queueback(Queue* pq);
typedata queuesize(Queue* pq);


